If you have questions AND ANSWERS to contribute to this FAQ sheet, please send them to me,
overby@cray.com.
I'm looking for contributions to this FAQ, not questions from people who expect me to give them answers.

Frequently Asked Questions on Comp.Os.MINIX

This Frequently Asked Questions (FAQ) list is intended to accompany the Minix Information Sheet. Some of the information here is duplicated from the Information Sheet when deemed appropriate. In creating this, I have attempted to recall the Great Questions (and their answers) as well as the Great Discussions from the net. Many thanks to everyone who has contributed to this document. Several things to remember when you ask questions on the net: Supply enough information for people to actually help you. Things like what Minix version, your hardware configuration, and so-on are almost always necessary to not have to take shots in the dark. If you are reluctant to tell any or all of this, don't expect a good answer. There are some questions for which there is no answer, because nobody has encountered the problem previously or there is no good solution to the problem.
  1. WHERE CAN I GET MINIX?

    Minix is sold by Prentice-Hall, Inc. and their authorized distribu- tors. They hold the Copyright on Minix, and sell it for profit (or at least we assume they make a profit on it).

    IT IS NOT AVAILABLE FOR ANONYMOUS FTP!

    However, demonstration versions for the IBM PC, Atari ST, and Amiga exist and are available via FTP from ftp.cs.vu.nl , plains.nodak.edu and other archive sites. It is also available from Prentice-Hall for a small fee (see the Minix information sheet for more details & ISBN number). The Amiga version is available onf "Fish Disk" number 525, available from large Amiga FTP sites {don't ask me which ones and where -- Glen}, users groups and some retailers. While far from a working system, the demo is sufficient to get a "feeling" of what Minix does.
  2. WHAT VERSIONS OF MINIX EXIST?

    The most current version is 1.5.10, known simply as "1.5" if you buy it from Prentice-Hall. Upgrade "diffs" have been posted to the net over the past several months; consult an archive site listed in the Information Sheet to find that. Prentice-Hall has been shipping ALL versions of Minix 1.5 for several months.

    PRENTICE HALL IS SHIPPING 1.5.10, BUT THEY CALL IT 1.5

  3. BUT I'VE HEARD OF THIS A NEWER VERSION, 1.6.25.

    Yes, that exists, but it is not sold by Prentice-Hall (yet). It is available as a set of patches against 1.5 from the several archives. There are only PC and Atari versions yet, it has not been ported to the Mac, Amiga, or Sparc. For PCs with at least a 386 processor there is also a version called Minix-386vm 1.6.25.
  4. HOW DOES PDP 11/44 MEMORY MANAGEMENT WORK?

    This was the first big off-the-topic discussion on the group, and it's still not an appropriate topic, so if you are still intrigued about pdp-11 memory management, consult the DEC processor handbooks, or some harmless newsgroup like alt.dev.null.
  5. PLEASE SUBSCRIBE ME TO THE MAILING LIST

    Why ask 26,000 people to do that, when there is one person who can, and you can ask a computer to do it for you? If you are on bitnet or arpanet, you can get this newsgroup via a mailing list, info-minix. To subscribe to the list, send a message to
    listserv@vm1.nodak.edu
    (internet) or
    listserv@ndsuvm1
    (bitnet) saying:

    signup minix-l your_full_name

    If you have trouble, contact the listserv maintainer at
    postmaster@vm1.nodak.edu
  6. PLEASE UNSUBSCRIBE ME FROM THE MAILING LIST

    Use the same procedure as for subscribing, but use "unsubscribe" in- stead of "signup".
  7. WHAT IS THE ROOT PASSWORD?

    It's in the book, on pages 373 (login "ast") and 380 (login "root"). If you didn't buy the book, that's only the start of your problems.
  8. MINIX DOESN'T WORK WITH MY HARD DISK.

    There are many potential sources of this. Several are: You are running an RLL controller on an XT. You must change "NR_SECTORS" in the configuration file, from 17 (standard for MFM controllers) to 25 (Adaptec controllers) or 26 (Western Digital and others).
  9. IS THERE A SCSI DRIVER FOR MINIX?

    The following info applies only to PCs.

    All SCSI controllers work differently, from the primitive Seagate ST01, to the smarter Always IN-2000, and Adaptec with it's own on-board CPU.

    Magnus Doell has released his driver for the ST-02, and James da Silva has written one for the Adaptec 154X. They can be found on plains.nodak.edu in, respectively,

    The ROM wini driver should also run most SCSI controllers but you lose protected mode capability.

    Amiga Minix has support for Commodore SCSI hard disks in the v1.5.10.1 update.

    Minix-386-vm also includes a SCSI driver.

  10. WHAT TAPE DRIVES WORK WITH MINIX?

    Minix comes from Prentice Hall with no support for tape drives.

    For the PC, James da Silva has written a SCSI driver for Adaptec 154X type controllers. This driver provides support for SCSI tape drives; there are reports of people successfully using it with Archive Viper tape drives (NB: not all Archive Viper drives have a SCSI interface!)

  11. THE SINGLE THREADED FILESYSTEM IS A REAL BOTTLENCK.

    True. It's only noticeable when you are running massive background processes, or putting multiple users on your computer. This "problem" has been recently "fixed" and the "solution" posted to the net. See your nearby bit-bucket (archive site) for it!

    You've got the source. Fix it.

  12. IS THERE A 386 MINIX?

    Minix 1.5.10/PC runs on 80286 and 80386 systems using 80286 protected mode (so all your memory is used for programs, rather than as bankswitched memory "windows" or a big RAM disk). There is an experimental 32-bit kernel from Bruce Evans. It is available from
    sirius.ucs.adelaide.edu.au: pub/minix/local
    plains.nodak.edu:pub/Minix/oz
    There is also the Minix-386vm package by Philip Homburg and Kees Bot. Some of its features are: For details, get the manual pages from ftp.cs.vu.nl:/pub/Minix-386vm ftp.vmars.tuwien.ac.at:/pub/minix/Minix-386vm and read the usage.8 manual page.
  13. I HAVE AN OLD VERSION OF MINIX. HOW CAN I UPGRADE?

    You need to get an upgrade kit from one of the archive sites; see the Minix Information Sheet for a (supposedly) complete list of sites which archive Minix-related bits.

    Also, read the Upgrading Tutorial -- it was meant to help.

  14. WHAT SHELLS EXIST FOR MINIX?

    sh
    Your typical Bourne shell. Comes with distribution Minix
    clam
    Tcsh-like shell, runs under Minix & real Unix's. Available from ftp sites sirius, ccadfa, plains & others
    ksh
    Korn shell, ported to Minix. Diffs for Minix on plains.
    marvin
    A kid's shell. Posted months ago in comp.os.minix.
    emacs
    Does this count as a shell? Works only under 68K-Minix's and perhaps 386-Minix.
    tcsh
    The binaries for 68K-Minix and 386-Minix tcsh are available from ftp.uni-koeln.de. The v6.02 tcsh source distribution contains configuration information for 386-Minix systems.
  15. IS THERE X-WINDOWS FOR MINIX?

    Not for standard Minix. It would be difficult if not impossible (that was meant as a challenge!) to put X on Minix because X is huge. Unless you have many megabytes of memory, it would be impossible to run X clients and servers on one machine. It will also certainly require 32-bit mode operation. Minix-386vm, however, does support X11R5. Don't be fooled by Mini-X. This is just an EGA- or VGA-graphics driver and a windowing library for Minix-PC. The API is similar to X11 (but not identical), so porting X programs might be easy. It is not possible to run several programs using it at once, however.

    There is also a port of MGR, but I don't know about its current status.

  16. WHY CAN'T MY PC BOOT PC-MINIX FROM 1.44MB FLOPPY DISKS ?

    There's a couple of reasons for this. First, straight out of the box, MINIX doesn't plan on dealing with 1.44Mb floppy disks. The entries in /dev should be set up specifically for your machine, so pick out the correct entries here:
              mknod /dev/fd0-dsdd5in b 2  4 360               # Drive A, 360K 5.25"
              mknod /dev/fd0-dshd5in b 2  8 1200              # Drive A, 1.2M 5.25"
              mknod /dev/fd0-dsdd3in b 2 16 720               # Drive A, 720K 3.5"
              mknod /dev/fd0-dshd3in b 2 28 1440              # Drive A, 1.44M 3.5"
                         ^^^             ^^
    
    Change 'fd0' to 'fd1' and add 1 to the minor device number to create an entry for floppy drive B. It may be a good idea to link the gener- ic floppy disk entries (/dev/fd0 and /dev/fd1) to the proper /dev/fd0-ds{whatever} entries for your machine, so that programs like dosread continue to work. All possible formats are:
            mknod /dev/fd0  b 2  0    0       # Drive A, automatic
            mknod /dev/pc0  b 2  4  360       # Drive A, 360K 5.25"
            mknod /dev/at0  b 2  8 1200       # Drive A, 1.2M 5.25"
            mknod /dev/qd0  b 2 12  360       # Drive A, 360K in a 720K 5.25"
            mknod /dev/ps0  b 2 16  720       # Drive A, 720K 3.5" and 5.25"
            mknod /dev/pat0 b 2 20  360       # Drive A, 360K in a 1.2M 5.25"
            mknod /dev/qh0  b 2 24  720       # Drive A, 720K in a 1.2M 5.25"
            mknod /dev/PS0  b 2 28 1440       # Drive A, 1.44M 3.5"
    
    Second reason your PC won't boot from 1.44Mb floppy disks, even though you've fixed up the floppy disk device entries: tools/bootblok.s doesn't know about 1.44M disks, so it blindly loads the boot image in- correctly and then tries to execute it. Get Guy Helmer's bootblok.s from an archive site, or get shoelace.
  17. WHAT'S WRONG WITH 'ps'?

    You need to have a copy of the compiled kernel in /usr/src/kernel/kernel, mm in /usr/src/mm/mm, and fs in /usr/src/fs/fs for ps to read the namelist out of. The PC Minix compiler must have the "-s" flag to build the symbol table. Note that this MUST be the SAME kernel that is booted.
  18. HOW IS THE FORK(2) SYSTEM CALL IMPLEMENTED ON THE 68K PROCESSORS WITHOUT A MEMORY MANAGEMENT UNIT?

    This is done by shadowing. This is copying the memory around as long as both child and parent processes do exist. Although this seems very expensive, it is not because most processes exec(2) almost immediately after the fork(). But most terminal emulators who fork() en keep running loose.
  19. WHY IS KERMIT SO ABSURDLY SLOW UNDER MINIX-68k?

    See the above question. Kermit forks so that one process listens to the serial port and writes to the screen, and the other process listens to the keyboard and writes to the serial port. Since the second process never "exec's", the two processes are continually swapped in and out of one memory slot.
  20. IS THERE ALSO A 64K+64K LIMIT FOR MINIX 68K & MINIX 386?

    For minix 68k, there isn't. For minix 386 there isn't provided you use the proper compiler (This means no ACK)
  21. DOES MINIX HAVE BERKELY JOB CONTROL?

    No. Nor does it have its associated signals like SIGSTOP, SIGCONT etc.
  22. DOES MINIX SUPPORT TCP/IP AND NFS?

    Not out of the Box. TNET4 is a TCP/IP implementation for Minix-PC. Minix-386vm includes TCP/IP (this is also available as patches relative to Minix 1.6.25).

    NFS does not exist.

  23. WHY CAN'T I RECOMPILE KERMIT OR ELLE ON PC-MINIX 1.5?

    You can't assemble Kermit or elle on a PC using Minix 1.5 or earlier; asld reports an "out of space" error, which means it ran out of space in the output object file. That is why the binaries are (certainly were) on the P-H distribution. Those binaries were compiled by a dif- ferent, more efficient compiler.
  24. WHY AREN'T THE MANUALS ONLINE? WHERE CAN I GET THE MANUALS?

    The online manuals are available via anonymous ftp from ftp.vmars.tuwien.ac.at (128.130.39.16) in the file /pub/minix/net/manpages.tar.Z. To extract the manuals, ftp the file binary-wise, uncompress it and extract using tar when you are in your /usr/man directory. Each manual is in a separate file, and to use the distribution 1.5 man(1) you will need to read the source to man(1) to see how to create the single manual file. Alternatively, the source to a more Unix-like man(1) is available on ccadfa in the file pub/minix/mansrc.Z. To extract the code, ftp binary-wise, uncompress and unshar. Before compiling the code, modify the header file to reflect your system setup. Compile the code. If you are using less(1) as a pager, you will need to modify main.c in nroff(1); instructions are included in mansrc.Z
  25. WHAT IS THE DIFFERENCE BETWEEN THE 80386 AND THE 386sx?

    There is no difference between 386sx/386dx except for the bus (24-bit addresses and 16-bit data).
  26. DOES MINIX SUPPORT MAIL/NEWS/UUCP?

    As shipped from Prentice Hall, Minix 1.5 include only local Email, and no Uucp nor Usenet News support. Various additional packages from the net exist: There are two UUCP implementations, by Fred van Kempen and by Will Rose. Fred wrote an Email interface, UMail/WMail and a news software, WNews. A BNews implementation and the Tass newsreader from alt.sources also exist under Minix. All these packages are available via anonymous FTP from archive sites.
  27. WHY IS THE DIRECTORY ON PLAINS CALLED "oz" INSTEAD OF 386

    Plains maintains several "shadows" of other sites. To allow easy automatic updating of packages from the remote sites, we place everything from that site in a directory reminiscent of that site's name. To absorb the remote site's files into the local directory structure would frustrate this, and it probably wouldn't happen.
  28. WHERE CAN I GET THE NEW ANSI C COMPILER?

    (from Andy Tanenbaum's posting <13286@star.cs.vu.nl> 11 Mar 92)
        There are three compilers available:
    
          - ANSI C, conforming to ANS X3.159-1989
    
          - Modula-2, conforming to
              "Report on The Programming Language Modula-2", in "Programming in
    	  Modula-2, 3rd ed." by Niklaus Wirth, Springer-verlag, 1983
    
          - Pascal confrming to level 1 of BSI standard BS 6192: 1982 (ISO 7185), 
              with a few small exceptions
    
        Also, a Modula-2 makefile generator and some utilities for handling
        relocatable object files are included (aal, nm, size, strip, etc).
        Complete libraries for ANSI C, Pascal, and Modula 2 are provided. 
    
        This package is available in 4 different versions:
    
          - 5.25" DS/DD floppies for 8088/286/386 (4 360K floppies);
          - 5.25" DS/HD floppies for 8088/286/386 (1 1.2M floppy);
          - 3.5"  DS/DD floppies for 8088/286/386 (2 720K floppies);
          - 3.5"  DS/DD floppies for Commodore Amiga or Atari ST (2 720K floppies).
        
        Many problems with the old Minix C compiler have been resolved:
          - All versions have separate as and ld programs.  Asld is gone.
          - Floating point is now supported
          - Library is greatly improved and is ANSI conformant
          - A program aal is provided to manage libraries (ranlib-like)
        
        The package is available from two companies:
    
        Transmediair Products & Support B.V.	Unipress Software
        Box 297					2025 Lincoln Highway
        3720 AG  Bilthoven				Edison, NJ 08817
        The Netherlands				U.S.A.
        Tel: +31 30 281820				Tel: +1 908 287 2100
        FAX: +31 30 292294				FAX: +1 908 287 4929
        						Email: msk@unipress.com
    
    Transmediair charges US $200,- for the 4 floppy PC version, US $150,- for the other versions. Unipress charges US $199,- for all versions.
  29. BUT THERE *IS* AN AMIGA DEMO DISK!

    It can be found on Fish disk 525. Fish disks are available at ftp sites carrying Amiga stuff. They should also be available from various Amiga groups and retailers.
  30. IS THERE A WAY TO BOOT FROM A MINIX FILE SYSTEM (ON FLOPPY OR HARD DISK?

    There are at least three utilities to do this. They all put the image to be booted from into a normal file on a Minix file system and change the boot block, so that it can read a file from a Minix FS and start it.

    Shoelace is the oldest of these utilities. It includes a lot of bells and whistles (you can check a file system, load the components of Minix seperately, start a debugger before Minix, so you can debug Minix at start up, ...), but is a little slow and a little difficult to set up. I have been using it for a long time now and am quite happy with it.

    MXboot. Sorry, don't know anything about it, except that it exists.

    Boot Monitor: This is currently the official boot tool (i.e., it is included in 1.6.25). Faster and simpler than shoelace, and depends less on hardware. Lets you build nice menues to boot from several kernels, set boot options, boot from other partitions, etc. It also understands the new file system types.

  31. I HAVE A 16MB PC, BUT MINIX RUNS OUT OF MEMORY WHILE BOOTING. WHY?

    Minix counts memory in 256 byte units and uses a 16-bit variable to do this. So if you have 16MB of RAM, an overflow will occur and Minix will think you have no memory at all and refuse to work. Use the universal boot disk to boot, then look for the line

    ext_memsize = get_ext_memsize();

    in /usr/src/kernel/cstart.c and insert something like

    if (ext_memsize >= 15360) ext_memsize = 15359;

    after it and build a new system. Alternately you can upgrade to Minix 1.6.25 or Minix-386vm, which don't have this problem.
  32. WHAT ARE THE MINIMUM HARDWARE REQUIREMENTS FOR MINIX?

    Theoretically you can run it on an XT with 512kB RAM and 2 floppies. Unless you are particularly fond of juggling disks, you would want at least 20MB on a hard disk, though.

    A 286 will give you memory protection and the ability to use more the 640k of memory. 2MB are recommended.

    If you have a 386 and decide to use one of the 32-bit kernels, you should have at least 4MB RAM. For Minix-386vm 60MB of hard disk are probably the minimum, if you want to keep the sources online.